package controller;


import model.Model;
import model.User;
/**
 * Classe representant le controleur de l'application
 * @author Lefevre, Thoue
 */
public class Controleur{
    private Model eaudio;
    private String ip;
    private int port;
    /**
     * Constructeur
     * @param eaudio model de l'application
     */
    public Controleur (Model eaudio){
        this.eaudio = eaudio;
    }
    /**
     * Setter port
     * @param port port ecoute du serveur tcp
     */
    public void setPort(int port) {   this.port = port;   }
    /**
     * Setter user
     * @param user utilisateur de l'application
     */
    public void setCurrentUser(User user) {  this.eaudio.setCurrentUser(user);  }
    /**
     * Setter user du chat
     * @param user utilisateur destinataire du chat
     */
    public void setUserChatActif(User user) {  this.eaudio.setUserChatActif(user);  }
    /**
     * Demarre le serveur d'ecoute tcp
     */
    public void ecouterDemandeDeConversation(){
        eaudio.ecouterDemandeDeConversation();
    }
    /**
     * Appel un utilisateur
     * @param ip adresse ip d'ecoute de l'utilisateur
     * @param port port d'ecoute de l'utilisateur
     */
    public void appeler(String ip, int port){
        eaudio.appeler(ip, port);
    }
    /**
     * Setter seuilSilence
     * @param seuil seuil de silence en dessous du quel le son n'est pas envoye
     */
    public void setSeuilSilence(int seuil){
        eaudio.setSeuilSilence(seuil);
    }
    /**
     * Permet de couper le son d'une conversation
     * @param user utilisateur concerner
     * @param mute couper/remettre le son
     */
    public void setMute(User user,boolean mute){
        eaudio.setMute(user, mute);
    }
    /**
     * Permet de mettre en pause une conversation et d'avertir l'utilisateur
     * @param user utilisateur concerner
     * @param pause mettre en pause/reprendre une conversation
     */
    public void setPause(User user,boolean pause){
        eaudio.setPause(user, pause);
    }
    /**
     * Permet de mettre fin a une conversation
     * @param user utilisateur concerner
     */
    public void raccrocher(User user){
        eaudio.Raccrocher(user);
    }
    /**
     * Refuse une demande de conversation
     * @param user utilisateur concerner
     */
    public void Refuser(User user){
        eaudio.Refuser(user);
    }
    /**
     * Confirme une acceptation de conversation
     * @param user utilisateur concerner
     */
    public void confirmer(User user){
        eaudio.Confirmer(user);
    }
    /**
     * Accepte une demande de conversation
     * @param user utilisateur concerner
     */
    public void accepter(User user){
        eaudio.accepter(user);
    }
    /**
     * Envoie un message ecrit a l'utilisateur userChatActif
     * @param message message ecrit
     */
    public void envoyerMessage(String message){
        eaudio.envoyerMessage(message);
    }
    /**
     * Ajoute un contact dans la liste
     * @param user utilisateur concerner
     */
    public void ajouterContact(User user){
        eaudio.ajouterContact(user);
    }
    /**
     * Ajoute un contact dans la liste
     * @param user utilisateur concerner
     */
    public void supprimerContact(User user){
        eaudio.supprimerContact(user);
    }
    /**
     * Charge la liste des contacts
     */
    public void loadContact(){
        eaudio.loadContact();
    }
    /**
     * Sauvegarde la liste des contacts
     */
    public void saveContact(){
        eaudio.saveContact();
    }
    
}